trait ConstantId {
    const ID: i32;
}

struct Struct;

impl ConstantId for Struct {
    const ID: i32 = 1;
}

trait ConstantIdDefault {
    const ID: i32 = 1;
}

struct OtherStruct;

impl ConstantIdDefault for Struct {}

impl ConstantIdDefault for OtherStruct {
    const ID: i32 = 5;
}

#[cfg(test)]
#[test]
fn it_works() {
    assert_eq!(1, <Struct as ConstantId>::ID);
    assert_eq!(5, OtherStruct::ID);
}
